﻿@echo off
REM   设置当前前端口为utf-8 的编码格式
chcp 65001

REM 先写好当前时间戳
set "$=%temp%\Spring"
>%$% Echo WScript.Echo((new Date()).getTime())
for /f %%a in ('cscript -nologo -e:jscript %$%') do set timestamp=%%a
del /f /q %$%
set fileNameTimestamp=%timestamp%

REM  将当前目录保存到参数nowBatDir 等号前后不要有空格
set nowBatDir=%~dp0
REM  保存当前的盘符（之后要切换回来）
set nowBatDird=%~d0

echo Set my Neovim of SpaceVim config!
echo git克隆https://github.com/SpaceVim/SpaceVim.git到~/.SpaceVim'

set Pan=c:\
set SpaceVimSrc=%userprofile%\.SpaceVim
set nvimConfigFile=%userprofile%\AppData\Local\nvim
set nvimuserConfigPath=%userprofile%\.SpaceVim.d

if exist %Pan% (
    echo [调试提示]%Pan%存在
    C:
    cd  %userprofile%
    echo %userprofile%
    echo %userprofile%
    if exist %SpaceVimSrc% (         
        echo [调试提示]%SpaceVimSrc%存在
        echo [调试提示]进入%SpaceVimSrc%
        cd %SpaceVimSrc%
        echo [调试提示]切git 拉取更新
        git pull
        echo [调试提示]检出
        git checkout -- .
    ) else (
        echo [调试提示]切%SpaceVimSrc%不存在
        echo [调试提示]git克隆自动生成
        git clone https://github.com/SpaceVim/SpaceVim.git  %userprofile%/.SpaceVim
    )

    if exist %nvimConfigFile% (
        echo [调试提示]%nvimConfigFile%存在
        echo [调试提示]备份%nvimConfigFile%
        ren  %nvimConfigFile%  nvim_bak%fileNameTimestamp%
        " 需要注意的是，旧文件可以使用绝对路径，也可以使用相对路径，但是，新文件名不能使用任何路径，只能是新的文件名，即使这个路径就是当前目录。
    ) else (
        echo [调试提示]%nvimConfigFile%不存在
    )
    mklink /J %nvimConfigFile%   %userprofile%\.SpaceVim

    if exist %nvimuserConfigPath% (
        echo [调试提示]存在文件夹%nvimuserConfigPath%
        echo [调试提示]备份%nvimuserConfigPath%
        REM ren  %nvimuserConfigPath%    %nvimuserConfigPath%_bak%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
        REM  上面的写法 个位数时间段会为空 导致出错
        ren  %nvimuserConfigPath%   .SpaceVim.d_bak%fileNameTimestamp%
        " 需要注意的是，旧文件可以使用绝对路径，也可以使用相对路径，但是，新文件名不能使用任何路径，只能是新的文件名，即使这个路径就是当前目录。
    ) else (
        echo [调试提示]不存在文件夹%nvimuserConfigPath%
    )
    echo [调试提示]切换回原来的盘符防止目标盘和脚本盘不在同一盘中
    %nowBatDird%
    echo [调试提示]切换回原来目录
    cd  %nowBatDir%

    mklink /J %nvimuserConfigPath%   %nowBatDir%MySpaceVim

) else (
    echo [调试提示]%Pan%不存在
)
REM  暂停 
pause

REM参考资料
REM [cmd ren命令 重命名文件（夹）](https://m.jb51.net/article/18983.htm)